package main

import (
	"fmt"
	"strings"
)

func main() {
	reader := strings.NewReader("其中有一个需求就是")
	printNext5Chars(reader)
	//无论撤销多少次，最终只能撤回一个rune的位置
	//UnreadRune在执行下次ReadRune之前，只会执行一次，从第二次执行就会报错
	for i := 0; i < 3; i++ {
		reader.UnreadRune()
	}
	fmt.Println()
	printNext5Chars(reader)
}

func printNext5Chars(reader *strings.Reader) {
	for i := 0; i < 5; i++ {
		ch, size, _ := reader.ReadRune()
		fmt.Printf("%c %d\n", ch, size)
	}
}
